package student.aistar.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 本类用来演示: 自定义的日期工具类 - 推荐定义成static
 *
 * @author: success
 * @date: 2021/7/19 9:45 上午
 */
public class DateUtil {

    public static void main(String[] args) {
        Date date = DateUtil.parse("2021-08-06","yyyy-MM-dd");
        System.out.println(date);
    }

    //将字符串解析成Date类型
    public static Date parse(String strDate, String pattern){
        if (strDate == null || strDate.trim().length()==0)
            return null;

        //构建SimpleDateFormat对象
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        Date d = null;

        try {
            d = sdf.parse(strDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return d;
    }

    //日期转换成字符串

    public static String format(Date date ,String pattern){
        //非空判断
        if (date == null)
            return null;
        //构建SimpleDateFormat对象
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        return sdf.format(date);
    }





    /**
     * 获取某年某月的最大天数
     * @param year
     * @param month
     * @return
     */
    public static int getMaxDay(int year,int month){
        int days = 1;
        if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
            days = 31;
        else if (month == 2) {
//            days = 28;
//            if (isLeapYear(year))
//                days++;
            days = isLeapYear(year)?29:28;
        }else
            days = 30;
        return days;
    }
    public static boolean isLeapYear(int year){
        //        if((year%4==0 && year%100!=0) || year%400==0){
//            return true;
//        }else{
//            return false;
//        }

//        if((year%4==0 && year%100!=0) || year%400==0)
//            return true;
//        else
//            return false;

//        if((year%4==0 && year%100!=0) || year%400==0)
//            return true;
//        return false;

        //编程之美 -> 3遍
        //java核心卷5  ->9
        //java编程思想 -> 2遍
        return (year%4==0 && year%100!=0) || year%400==0;
    }
}
